export interface VirtualLoopData {
  centreIed: CentreIed;
  connectionData: ConnectionDatum[];
}

interface ConnectionDatum {
  noCentreIed: CentreIed;
  outputList: OutputList[];
  inputList: InputList[];
}

export interface InputList {
  id: string;
  name: string;
  desc: string;
  type: number;
  appid: number;
  appid16: string;
  outputPort: string;
  outputPortOfSpd?: any;
  outputSubDeviceOfSpd?: any;
  outputCoreInfos?: any;
  inputPort: string;
  inputPortOfSpd?: any;
  inputSubDeviceOfSpd?: any;
  inputCoreInfos?: any;
  txAct: ActType;
  rxAct: ActType;
  fiberCircuitInfos: any[];
  enaTerminalList: EnaTerminalList2[];
  switch: boolean;
}

export interface EnaTerminalList2 {
  ena?: any;
  terminalList: TerminalList[];
}

export interface OutputList {
  id: string;
  name: string;
  desc: string;
  type: number;
  appid: number;
  appid16: string;
  outputPort: string;
  outputPortOfSpd?: any;
  outputSubDeviceOfSpd?: any;
  outputCoreInfos?: any;
  inputPort: string;
  inputPortOfSpd?: any;
  inputSubDeviceOfSpd?: any;
  inputCoreInfos?: any;
  txAct: ActType;
  rxAct: ActType;
  fiberCircuitInfos: any[];
  enaTerminalList: EnaTerminalList[];
  switch: boolean;
}

export interface EnaTerminalList {
  ena: Ena;
  terminalList: TerminalList[];
}

interface TerminalList {
  outputName: string;
  outputRef: string;
  outputDesc: string;
  inputName: string;
  inputRef: string;
  inputDesc: string;
}

interface Ena {
  outputEnaRef: string;
  outputEnaDesc: string;
  inputEnaRef?: any;
  inputEnaDesc?: any;
  outputEnaAct?: any;
  inputEnaAct?: any;
}

interface ActType {
  state: string;
  act: string;
  index?: any;
  objId?: any;
}

interface CentreIed {
  id: string;
  name: string;
  desc: string;
  manufacturer: string;
  deviceType: string;
  configVersion: string;
  scdId: string;
}
